/*
	use the following regexpress to covert the define string(copy from msdn) to my c variables(using utraedit)

// convert "CV_CALL_NEAR_C = 0x00" format
(\S+)\s*=\s*(\d*)
pair<DWORD,_tstring>(\2,_T("\1"))

// convert "UdtStruct" format
(\w+)
(1,_T("\1"))

// add end pair
)\r\n};
),\r\n   pair<DWORD,_tstring>(0,PAIR_END)\r\n};

// conver enum to pair
\s*enum+\s*(\S+)
pair<DWORD,_tstring> pair\1[]=

  $Id$
*/

const _tstring PAIR_END(_T("DIAPAIREND"));
 
pair<DWORD,_tstring> CInit_CIDIASymb2Str::pairBasicType[]=
{
   pair<DWORD,_tstring>(0,_T("btNoType")),
   pair<DWORD,_tstring>(1,_T("btVoid")),
   pair<DWORD,_tstring>(2,_T("btChar")),
   pair<DWORD,_tstring>(3,_T("btWChar")),
   pair<DWORD,_tstring>(6,_T("btInt")),
   pair<DWORD,_tstring>(7,_T("btUInt")),
   pair<DWORD,_tstring>(8,_T("btFloat")),
   pair<DWORD,_tstring>(9,_T("btBCD")),
   pair<DWORD,_tstring>(10,_T("btBool")),
   pair<DWORD,_tstring>(13,_T("btLong")),
   pair<DWORD,_tstring>(14,_T("btULong")),
   pair<DWORD,_tstring>(25,_T("btCurrency")),
   pair<DWORD,_tstring>(26,_T("btDate")),
   pair<DWORD,_tstring>(27,_T("btVariant")),
   pair<DWORD,_tstring>(28,_T("btComplex")),
   pair<DWORD,_tstring>(29,_T("btBit")),
   pair<DWORD,_tstring>(30,_T("btBSTR")),
   pair<DWORD,_tstring>(31,_T("btHresult")),
   pair<DWORD,_tstring>(0,PAIR_END)
};

pair<DWORD,_tstring> CInit_CIDIASymb2Str::pairCV_access_e[]=
{
   pair<DWORD,_tstring>(0,_T("")),
   pair<DWORD,_tstring>(1,_T("CV_private")),
   pair<DWORD,_tstring>(2,_T("CV_protected")),
   pair<DWORD,_tstring>(3,_T("CV_public")),
   pair<DWORD,_tstring>(0,PAIR_END)
};

pair<DWORD,_tstring> CInit_CIDIASymb2Str::pairCV_call_e[]= {
   pair<DWORD,_tstring>(0x00,_T("CV_CALL_NEAR_C")),
   pair<DWORD,_tstring>(0x04,_T("CV_CALL_NEAR_FAST")),
   pair<DWORD,_tstring>(0x07,_T("CV_CALL_NEAR_STD")),
   pair<DWORD,_tstring>(0x09,_T("CV_CALL_NEAR_SYS")),
   pair<DWORD,_tstring>(0x0b,_T("CV_CALL_THISCALL")),
   pair<DWORD,_tstring>(0,PAIR_END)
};

pair<DWORD,_tstring> CInit_CIDIASymb2Str::pairCV_CFL_LANG[]= {
   pair<DWORD,_tstring>(0x00,_T("CV_CFL_C")),
   pair<DWORD,_tstring>(0x01,_T("CV_CFL_CXX")),
   pair<DWORD,_tstring>(0x02,_T("CV_CFL_FORTRAN")),
   pair<DWORD,_tstring>(0x03,_T("CV_CFL_MASM")),
   pair<DWORD,_tstring>(0x04,_T("CV_CFL_PASCAL")),
   pair<DWORD,_tstring>(0x05,_T("CV_CFL_BASIC")),
   pair<DWORD,_tstring>(0x06,_T("CV_CFL_COBOL")),
   pair<DWORD,_tstring>(0x07,_T("CV_CFL_LINK")),
   pair<DWORD,_tstring>(0x08,_T("CV_CFL_CVTRES")),
   pair<DWORD,_tstring>(0x09,_T("CV_CFL_CVTPGD")),
   pair<DWORD,_tstring>(0,PAIR_END)
};

pair<DWORD,_tstring> CInit_CIDIASymb2Str::pairCV_CPU_TYPE_e[]= {
   pair<DWORD,_tstring>(0x00,_T("CV_CFL_8080")),
   pair<DWORD,_tstring>(0x01,_T("CV_CFL_8086")),
   pair<DWORD,_tstring>(0x02,_T("CV_CFL_80286")),
   pair<DWORD,_tstring>(0x03,_T("CV_CFL_80386")),
   pair<DWORD,_tstring>(0x04,_T("CV_CFL_80486")),
   pair<DWORD,_tstring>(0x05,_T("CV_CFL_PENTIUM")),
   pair<DWORD,_tstring>(0x06,_T("CV_CFL_PENTIUMII")),
//   CV_CFL_PENTIUMPRO = CV_CFL_PENTIUMII,
   pair<DWORD,_tstring>(0x07,_T("CV_CFL_PENTIUMIII")),
   pair<DWORD,_tstring>(0x10,_T("CV_CFL_MIPS")),
//   CV_CFL_MIPSR4000 = CV_CFL_MIPS,
   pair<DWORD,_tstring>(0x11,_T("CV_CFL_MIPS16")),
   pair<DWORD,_tstring>(0x12,_T("CV_CFL_MIPS32")),
   pair<DWORD,_tstring>(0x13,_T("CV_CFL_MIPS64")),
   pair<DWORD,_tstring>(0x14,_T("CV_CFL_MIPSI")),
   pair<DWORD,_tstring>(0x15,_T("CV_CFL_MIPSII")),
   pair<DWORD,_tstring>(0x16,_T("CV_CFL_MIPSIII")),
   pair<DWORD,_tstring>(0x17,_T("CV_CFL_MIPSIV")),
   pair<DWORD,_tstring>(0x18,_T("CV_CFL_MIPSV")),
   pair<DWORD,_tstring>(0x20,_T("CV_CFL_M68000")),
   pair<DWORD,_tstring>(0x21,_T("CV_CFL_M68010")),
   pair<DWORD,_tstring>(0x22,_T("CV_CFL_M68020")),
   pair<DWORD,_tstring>(0x23,_T("CV_CFL_M68030")),
   pair<DWORD,_tstring>(0x24,_T("CV_CFL_M68040")),
   pair<DWORD,_tstring>(0x30,_T("CV_CFL_ALPHA")),
   pair<DWORD,_tstring>(0x30,_T("CV_CFL_ALPHA_21064")),
   pair<DWORD,_tstring>(0x31,_T("CV_CFL_ALPHA_21164")),
   pair<DWORD,_tstring>(0x32,_T("CV_CFL_ALPHA_21164A")),
   pair<DWORD,_tstring>(0x33,_T("CV_CFL_ALPHA_21264")),
   pair<DWORD,_tstring>(0x34,_T("CV_CFL_ALPHA_21364")),
   pair<DWORD,_tstring>(0x40,_T("CV_CFL_PPC601")),
   pair<DWORD,_tstring>(0x41,_T("CV_CFL_PPC603")),
   pair<DWORD,_tstring>(0x42,_T("CV_CFL_PPC604")),
   pair<DWORD,_tstring>(0x43,_T("CV_CFL_PPC620")),
   pair<DWORD,_tstring>(0x50,_T("CV_CFL_SH3")),
   pair<DWORD,_tstring>(0x51,_T("CV_CFL_SH3E")),
   pair<DWORD,_tstring>(0x52,_T("CV_CFL_SH3DSP")),
   pair<DWORD,_tstring>(0x53,_T("CV_CFL_SH4")),
   pair<DWORD,_tstring>(0x60,_T("CV_CFL_ARM3")),
   pair<DWORD,_tstring>(0x61,_T("CV_CFL_ARM4")),
   pair<DWORD,_tstring>(0x62,_T("CV_CFL_ARM4T")),
   pair<DWORD,_tstring>(0x70,_T("CV_CFL_OMNI")),
   pair<DWORD,_tstring>(0x80,_T("CV_CFL_IA64")),
   pair<DWORD,_tstring>(0x90,_T("CV_CFL_CEE")),
   pair<DWORD,_tstring>(0,PAIR_END)
};

pair<DWORD,_tstring> CInit_CIDIASymb2Str::pairCV_HREG_e[]= {
   // Register subset shared by all processor types
   pair<DWORD,_tstring>(30000,_T("CV_ALLREG_ERR")),
   pair<DWORD,_tstring>(30001,_T("CV_ALLREG_TEB")),
   pair<DWORD,_tstring>(30002,_T("CV_ALLREG_TIMER")),
   pair<DWORD,_tstring>(30003,_T("CV_ALLREG_EFAD1")),
   pair<DWORD,_tstring>(30004,_T("CV_ALLREG_EFAD2")),
   pair<DWORD,_tstring>(30005,_T("CV_ALLREG_EFAD3")),
   pair<DWORD,_tstring>(30006,_T("CV_ALLREG_VFRAME")),
   pair<DWORD,_tstring>(30007,_T("CV_ALLREG_HANDLE")),
   pair<DWORD,_tstring>(30008,_T("CV_ALLREG_PARAMS")),
   pair<DWORD,_tstring>(30009,_T("CV_ALLREG_LOCALS")),

   //** Register set for Intel 80x86 and ix86 processor series **//
   pair<DWORD,_tstring>(0,_T("CV_REG_NONE")),
   pair<DWORD,_tstring>(1,_T("CV_REG_AL")),
   pair<DWORD,_tstring>(2,_T("CV_REG_CL")),
   pair<DWORD,_tstring>(3,_T("CV_REG_DL")),
   pair<DWORD,_tstring>(4,_T("CV_REG_BL")),
   pair<DWORD,_tstring>(5,_T("CV_REG_AH")),
   pair<DWORD,_tstring>(6,_T("CV_REG_CH")),
   pair<DWORD,_tstring>(7,_T("CV_REG_DH")),
   pair<DWORD,_tstring>(8,_T("CV_REG_BH")),
   pair<DWORD,_tstring>(9,_T("CV_REG_AX")),
   pair<DWORD,_tstring>(10,_T("CV_REG_CX")),
   pair<DWORD,_tstring>(11,_T("CV_REG_DX")),
   pair<DWORD,_tstring>(12,_T("CV_REG_BX")),
   pair<DWORD,_tstring>(13,_T("CV_REG_SP")),
   pair<DWORD,_tstring>(14,_T("CV_REG_BP")),
   pair<DWORD,_tstring>(15,_T("CV_REG_SI")),
   pair<DWORD,_tstring>(16,_T("CV_REG_DI")),
   pair<DWORD,_tstring>(17,_T("CV_REG_EAX")),
   pair<DWORD,_tstring>(18,_T("CV_REG_ECX")),
   pair<DWORD,_tstring>(19,_T("CV_REG_EDX")),
   pair<DWORD,_tstring>(20,_T("CV_REG_EBX")),
   pair<DWORD,_tstring>(21,_T("CV_REG_ESP")),
   pair<DWORD,_tstring>(22,_T("CV_REG_EBP")),
   pair<DWORD,_tstring>(23,_T("CV_REG_ESI")),
   pair<DWORD,_tstring>(24,_T("CV_REG_EDI")),
   pair<DWORD,_tstring>(25,_T("CV_REG_ES")),
   pair<DWORD,_tstring>(26,_T("CV_REG_CS")),
   pair<DWORD,_tstring>(27,_T("CV_REG_SS")),
   pair<DWORD,_tstring>(28,_T("CV_REG_DS")),
   pair<DWORD,_tstring>(29,_T("CV_REG_FS")),
   pair<DWORD,_tstring>(30,_T("CV_REG_GS")),
   pair<DWORD,_tstring>(31,_T("CV_REG_IP")),
   pair<DWORD,_tstring>(32,_T("CV_REG_FLAGS")),
   pair<DWORD,_tstring>(33,_T("CV_REG_EIP")),
   pair<DWORD,_tstring>(34,_T("CV_REG_EFLAGS")),
   pair<DWORD,_tstring>(40,_T("CV_REG_TEMP")),      // PCODE Temp
   pair<DWORD,_tstring>(41,_T("CV_REG_TEMPH")),     // PCODE TempH
   pair<DWORD,_tstring>(42,_T("CV_REG_QUOTE")),     // PCODE Quote
   pair<DWORD,_tstring>(43,_T("CV_REG_PCDR3")),     // PCODE reserved
   // CV_REG_PCDR4 through CV_REG_PCDR7 defined
   pair<DWORD,_tstring>(80,_T("CV_REG_CR0")),       // CR0 -- control registers
   // CV_REG_CR1 through CV_REG_CR4 defined
   pair<DWORD,_tstring>(90,_T("CV_REG_DR0")),       // Debug register
   // CV_REG_DR1 through CV_REG_DR7 defined

   pair<DWORD,_tstring>(110,_T("CV_REG_GDTR")),
   pair<DWORD,_tstring>(111,_T("CV_REG_GDTL")),
   pair<DWORD,_tstring>(112,_T("CV_REG_IDTR")),
   pair<DWORD,_tstring>(113,_T("CV_REG_IDTL")),
   pair<DWORD,_tstring>(114,_T("CV_REG_LDTR")),
   pair<DWORD,_tstring>(115,_T("CV_REG_TR")),

   pair<DWORD,_tstring>(116,_T("CV_REG_PSEUDO1")),
   // CV_REG_PSEUDO2 through CV_REG_PSEUDO9 defined

   pair<DWORD,_tstring>(128,_T("CV_REG_ST0")),
   // CV_REG_ST1 through CV_REG_ST7 defined
   pair<DWORD,_tstring>(136,_T("CV_REG_CTRL")),
   pair<DWORD,_tstring>(137,_T("CV_REG_STAT")),
   pair<DWORD,_tstring>(138,_T("CV_REG_TAG")),
   pair<DWORD,_tstring>(139,_T("CV_REG_FPIP")),
   pair<DWORD,_tstring>(140,_T("CV_REG_FPCS")),
   pair<DWORD,_tstring>(141,_T("CV_REG_FPDO")),
   pair<DWORD,_tstring>(142,_T("CV_REG_FPDS")),
   pair<DWORD,_tstring>(143,_T("CV_REG_ISEM")),
   pair<DWORD,_tstring>(144,_T("CV_REG_FPEIP")),
   pair<DWORD,_tstring>(145,_T("CV_REG_FPEDO")),
   pair<DWORD,_tstring>(146,_T("CV_REG_MM0")),
   // CV_REG_MM1 through CV_REG_MM7 defined

   pair<DWORD,_tstring>(154,_T("CV_REG_XMM0")),  // KATMAI registers
   // CV_REG_XMM1 through CV_REG_XMM7 defined
   pair<DWORD,_tstring>(162,_T("CV_REG_XMM00")), // KATMAI sub-registers
   // CV_REG_XMM01, 02, and 03 defined
   // CV_REG_XMM10, 11, 12, and 13 defined
   // CV_REG_XMM20, 21, 22, and 23 defined
   // CV_REG_XMM30, 31, 32, and 33 defined
   // CV_REG_XMM40, 41, 42, and 43 defined
   // CV_REG_XMM50, 51, 52, and 53 defined
   // CV_REG_XMM60, 61, 62, and 63 defined
   // CV_REG_XMM70, 71, 72, and 73 defined

   pair<DWORD,_tstring>(194,_T("CV_REG_XMM0L")),
   // CV_REG_XMM1L through CV_REG_XMM7L defined
   pair<DWORD,_tstring>(202,_T("CV_REG_XMM0H")),
   // CV_REG_XMM1H through CV_REG_XMM7H defined
   pair<DWORD,_tstring>(211,_T("CV_REG_MXCSR")),  // XMM status register
   pair<DWORD,_tstring>(212,_T("CV_REG_EDXEAX")), // EDX:EAX pair

   pair<DWORD,_tstring>(220,_T("CV_REG_EMM0L")),  // XMM sub-registers (WNI integer)
   // CV_REG_EMM1L through CV_REG_EMM7L defined
   pair<DWORD,_tstring>(228,_T("CV_REG_EMM0H")),
   // CV_REG_EMM1H through CV_REG_EMM7H defined

   pair<DWORD,_tstring>(236,_T("CV_REG_MM00")),
   pair<DWORD,_tstring>(237,_T("CV_REG_MM01")),
   pair<DWORD,_tstring>(238,_T("CV_REG_MM10")),
   pair<DWORD,_tstring>(239,_T("CV_REG_MM11")),
   pair<DWORD,_tstring>(240,_T("CV_REG_MM20")),
   pair<DWORD,_tstring>(241,_T("CV_REG_MM21")),
   pair<DWORD,_tstring>(242,_T("CV_REG_MM30")),
   pair<DWORD,_tstring>(243,_T("CV_REG_MM31")),
   pair<DWORD,_tstring>(244,_T("CV_REG_MM40")),
   pair<DWORD,_tstring>(245,_T("CV_REG_MM41")),
   pair<DWORD,_tstring>(246,_T("CV_REG_MM50")),
   pair<DWORD,_tstring>(247,_T("CV_REG_MM51")),
   pair<DWORD,_tstring>(248,_T("CV_REG_MM60")),
   pair<DWORD,_tstring>(249,_T("CV_REG_MM61")),
   pair<DWORD,_tstring>(250,_T("CV_REG_MM70")),
   pair<DWORD,_tstring>(251,_T("CV_REG_MM71")),

   //** Register set for the 68K processors **//
   pair<DWORD,_tstring>(0,_T("CV_R68_D0")),
   // CV_R68_D1 through CV_R68_D7 defined
   pair<DWORD,_tstring>(8,_T("CV_R68_A0")),
   // CV_R68_A1 through CV_R68_A7 defined
   pair<DWORD,_tstring>(16,_T("CV_R68_CCR")),
   pair<DWORD,_tstring>(17,_T("CV_R68_SR")),
   pair<DWORD,_tstring>(18,_T("CV_R68_USP")),
   pair<DWORD,_tstring>(19,_T("CV_R68_MSP")),
   pair<DWORD,_tstring>(20,_T("CV_R68_SFC")),
   pair<DWORD,_tstring>(21,_T("CV_R68_DFC")),
   pair<DWORD,_tstring>(22,_T("CV_R68_CACR")),
   pair<DWORD,_tstring>(23,_T("CV_R68_VBR")),
   pair<DWORD,_tstring>(24,_T("CV_R68_CAAR")),
   pair<DWORD,_tstring>(25,_T("CV_R68_ISP")),
   pair<DWORD,_tstring>(26,_T("CV_R68_PC")),
   //reserved 27
   pair<DWORD,_tstring>(28,_T("CV_R68_FPCR")),
   pair<DWORD,_tstring>(29,_T("CV_R68_FPSR")),
   pair<DWORD,_tstring>(30,_T("CV_R68_FPIAR")),
   //reserved 31
   pair<DWORD,_tstring>(32,_T("CV_R68_FP0")),
   // CV_R68_FP1 through CV_R68_FP7 defined
   //reserved 40
   pair<DWORD,_tstring>(41,_T("CV_R68_MMUSR030")),
   pair<DWORD,_tstring>(42,_T("CV_R68_MMUSR")),
   pair<DWORD,_tstring>(43,_T("CV_R68_URP")),
   pair<DWORD,_tstring>(44,_T("CV_R68_DTT0")),
   pair<DWORD,_tstring>(45,_T("CV_R68_DTT1")),
   pair<DWORD,_tstring>(46,_T("CV_R68_ITT0")),
   pair<DWORD,_tstring>(47,_T("CV_R68_ITT1")),
   //reserved 50
   pair<DWORD,_tstring>(51,_T("CV_R68_PSR")),
   pair<DWORD,_tstring>(52,_T("CV_R68_PCSR")),
   pair<DWORD,_tstring>(53,_T("CV_R68_VAL")),
   pair<DWORD,_tstring>(54,_T("CV_R68_CRP")),
   pair<DWORD,_tstring>(55,_T("CV_R68_SRP")),
   pair<DWORD,_tstring>(56,_T("CV_R68_DRP")),
   pair<DWORD,_tstring>(57,_T("CV_R68_TC")),
   pair<DWORD,_tstring>(58,_T("CV_R68_AC")),
   pair<DWORD,_tstring>(59,_T("CV_R68_SCC")),
   pair<DWORD,_tstring>(60,_T("CV_R68_CAL")),
   pair<DWORD,_tstring>(61,_T("CV_R68_TT0")),
   pair<DWORD,_tstring>(62,_T("CV_R68_TT1")),
   //reserved 63
   pair<DWORD,_tstring>(64,_T("CV_R68_BAD0")),
   // CV_R68_BAD1 through CV_R68_BAD7 defined
   pair<DWORD,_tstring>(72,_T("CV_R68_BAC0")),
   // CV_R68_BAC1 through CV_R68_BAC7 defined

   //** Register set for the MIPS 4000 **//
//   CV_M4_NOREG = CV_REG_NONE,
   pair<DWORD,_tstring>(10,_T("CV_M4_IntZERO")), // CPU register
   pair<DWORD,_tstring>(11,_T("CV_M4_IntAT")),
   pair<DWORD,_tstring>(12,_T("CV_M4_IntV0")),
   pair<DWORD,_tstring>(13,_T("CV_M4_IntV1")),
   pair<DWORD,_tstring>(14,_T("CV_M4_IntA0")),
   // CV_M4_IntA1, A2, and A3 defined
   pair<DWORD,_tstring>(18,_T("CV_M4_IntT0")),
   // CV_M4_IntT1 through CV_M4_IntT7 defined
   pair<DWORD,_tstring>(26,_T("CV_M4_IntS0")),
   // CV_M4_IntS1 through CV_M4_IntS7 defined
   pair<DWORD,_tstring>(34,_T("CV_M4_IntT8")),
   pair<DWORD,_tstring>(35,_T("CV_M4_IntT9")),
   pair<DWORD,_tstring>(36,_T("CV_M4_IntKT0")),
   pair<DWORD,_tstring>(37,_T("CV_M4_IntKT1")),
   pair<DWORD,_tstring>(38,_T("CV_M4_IntGP")),
   pair<DWORD,_tstring>(39,_T("CV_M4_IntSP")),
   pair<DWORD,_tstring>(40,_T("CV_M4_IntS8")),
   pair<DWORD,_tstring>(41,_T("CV_M4_IntRA")),
   pair<DWORD,_tstring>(42,_T("CV_M4_IntLO")),
   pair<DWORD,_tstring>(43,_T("CV_M4_IntHI")),

   pair<DWORD,_tstring>(50,_T("CV_M4_Fir")),
   pair<DWORD,_tstring>(51,_T("CV_M4_Psr")),

   pair<DWORD,_tstring>(60,_T("CV_M4_FltF0")), // Floating point registers
   // CV_M4_FltF1 through CV_M4_FltF31 defined
   pair<DWORD,_tstring>(92,_T("CV_M4_FltFsr")),

   //** Register set for the ALPHA AXP **//
//   CV_ALPHA_NOREG = CV_REG_NONE,
   pair<DWORD,_tstring>(10,_T("CV_ALPHA_FltF0")), // Floating point registers
   // CV_ALPHA_FltF1 through CV_ALPHA_FltF31 defined

   pair<DWORD,_tstring>(42,_T("CV_ALPHA_IntV0")), // Integer registers
   pair<DWORD,_tstring>(43,_T("CV_ALPHA_IntT0")),
   // CV_ALPHA_IntT1 through CV_ALPHA_IntT7 defined
   pair<DWORD,_tstring>(51,_T("CV_ALPHA_IntS0")),
   // CV_ALPHA_IntS1 through CV_ALPHA_IntS5 defined
   pair<DWORD,_tstring>(57,_T("CV_ALPHA_IntFP")),
   pair<DWORD,_tstring>(58,_T("CV_ALPHA_IntA0")),
   // CV_ALPHA_IntA1 through CV_ALPHA_IntA5 defined
   pair<DWORD,_tstring>(64,_T("CV_ALPHA_IntT8")),
   pair<DWORD,_tstring>(65,_T("CV_ALPHA_IntT9")),
   pair<DWORD,_tstring>(66,_T("CV_ALPHA_IntT10")),
   pair<DWORD,_tstring>(67,_T("CV_ALPHA_IntT11")),
   pair<DWORD,_tstring>(68,_T("CV_ALPHA_IntRA")),
   pair<DWORD,_tstring>(69,_T("CV_ALPHA_IntT12")),
   pair<DWORD,_tstring>(70,_T("CV_ALPHA_IntAT")),
   pair<DWORD,_tstring>(71,_T("CV_ALPHA_IntGP")),
   pair<DWORD,_tstring>(72,_T("CV_ALPHA_IntSP")),
   pair<DWORD,_tstring>(73,_T("CV_ALPHA_IntZERO")),

   pair<DWORD,_tstring>(74,_T("CV_ALPHA_Fpcr")), // Control registers
   pair<DWORD,_tstring>(75,_T("CV_ALPHA_Fir")),
   pair<DWORD,_tstring>(76,_T("CV_ALPHA_Psr")),
   pair<DWORD,_tstring>(77,_T("CV_ALPHA_FltFsr")),
   pair<DWORD,_tstring>(78,_T("CV_ALPHA_SoftFpcr")),

   //** Register set for Motorola/IBM PowerPC **//
   pair<DWORD,_tstring>(1,_T("CV_PPC_GPR0")), // PowerPC general registers (User Level)
   // CV_PPC_GPR1 through CV_PPC_GPR31 defined

   pair<DWORD,_tstring>(33,_T("CV_PPC_CR")), // PowerPC condition register (User Level)
   pair<DWORD,_tstring>(34,_T("CV_PPC_CR0")),
   // CV_PPC_CR1 through CV_PPC_CR7 defined

   pair<DWORD,_tstring>(42,_T("CV_PPC_FPR0")), // PowerPC floating point registers (User Level)
   // CV_PPC_FPR1 through CV_PPC_FPR31 defined

   pair<DWORD,_tstring>(74,_T("CV_PPC_FPSCR")), // PowerPC floating point status and control register (User Level)
   pair<DWORD,_tstring>(75,_T("CV_PPC_MSR")), // PowerPC machine state register (Supervisor Level)
   pair<DWORD,_tstring>(76,_T("CV_PPC_SR0")), // PowerPC segment registers (Supervisor Level)
   // CV_PPC_SR1 through CV_PPC_SR15 defined

   //** ADDITIONAL PowerPC REGISTERS DEFINED IN cvconst.h **//

   //** Register set for the Hitachi SH3 **//
//   CV_SH3_NOREG = CV_REG_NONE,
   pair<DWORD,_tstring>(10,_T("CV_SH3_IntR0")), // CPU register
   // CV_SH3_IntR1 through CV_SH3_IntR13 defined
   pair<DWORD,_tstring>(24,_T("CV_SH3_IntFp")),
   pair<DWORD,_tstring>(25,_T("CV_SH3_IntSp")),
   pair<DWORD,_tstring>(38,_T("CV_SH3_Gbr")),
   pair<DWORD,_tstring>(39,_T("CV_SH3_Pr")),
   pair<DWORD,_tstring>(40,_T("CV_SH3_Mach")),
   pair<DWORD,_tstring>(41,_T("CV_SH3_Macl")),
   pair<DWORD,_tstring>(50,_T("CV_SH3_Pc")),
   pair<DWORD,_tstring>(51,_T("CV_SH3_Sr")),
   pair<DWORD,_tstring>(60,_T("CV_SH3_BarA")),
   pair<DWORD,_tstring>(61,_T("CV_SH3_BasrA")),
   pair<DWORD,_tstring>(62,_T("CV_SH3_BamrA")),
   pair<DWORD,_tstring>(63,_T("CV_SH3_BbrA")),
   pair<DWORD,_tstring>(64,_T("CV_SH3_BarB")),
   pair<DWORD,_tstring>(65,_T("CV_SH3_BasrB")),
   pair<DWORD,_tstring>(66,_T("CV_SH3_BamrB")),
   pair<DWORD,_tstring>(67,_T("CV_SH3_BbrB")),
   pair<DWORD,_tstring>(68,_T("CV_SH3_BdrB")),
   pair<DWORD,_tstring>(69,_T("CV_SH3_BdmrB")),
   pair<DWORD,_tstring>(70,_T("CV_SH3_Brcr")),

   // Additional registers for Hitachi SH processors
   pair<DWORD,_tstring>(75,_T("CV_SH_Fpscr")), // Floating point status/control register
   pair<DWORD,_tstring>(76,_T("CV_SH_Fpul")), // Floating point communication register
   pair<DWORD,_tstring>(80,_T("CV_SH_FpR0")), // Floating point registers
   // CV_SH_FpR1 through CV_SH_FpR15 defined
   pair<DWORD,_tstring>(96,_T("CV_SH_XFpR0")),
   // CV_SH_XFpR1 through CV_SH_XFpR15 defined

   //** Register set for the ARM processor **//
//   CV_ARM_NOREG = CV_REG_NONE,
   pair<DWORD,_tstring>(10,_T("CV_ARM_R0")),
   // CV_ARM_R1 through CV_ARM_R12 defined
   pair<DWORD,_tstring>(23,_T("CV_ARM_SP")), // Stack pointer
   pair<DWORD,_tstring>(24,_T("CV_ARM_LR")), // Link register
   pair<DWORD,_tstring>(25,_T("CV_ARM_PC")), // Program counter
   pair<DWORD,_tstring>(26,_T("CV_ARM_CPSR")), // Current program status register

   //** Register set for Intel IA64 **//
//   CV_IA64_NOREG = CV_REG_NONE,
   pair<DWORD,_tstring>(512,_T("CV_IA64_Br0")), // Branch registers
   // CV_IA64_Br1 through CV_IA64_Br7 defined
   pair<DWORD,_tstring>(704,_T("CV_IA64_P0")), // Predicate registers
   // CV_IA64_P1 through CV_IA64_P63 defined
   pair<DWORD,_tstring>(768,_T("CV_IA64_Preds")),
   pair<DWORD,_tstring>(832,_T("CV_IA64_IntH0")), // Banked general registers
   // CV_IA64_IntH1 through CV_IA64_IntH15 defined
   pair<DWORD,_tstring>(1016,_T("CV_IA64_Ip")), // Special registers
   pair<DWORD,_tstring>(1017,_T("CV_IA64_Umask")),
   pair<DWORD,_tstring>(1018,_T("CV_IA64_Cfm")),
   pair<DWORD,_tstring>(1019,_T("CV_IA64_Psr")),
   pair<DWORD,_tstring>(1020,_T("CV_IA64_Nats")), // Banked general registers
   pair<DWORD,_tstring>(1021,_T("CV_IA64_Nats2")),
   pair<DWORD,_tstring>(1022,_T("CV_IA64_Nats3")),
   pair<DWORD,_tstring>(1024,_T("CV_IA64_IntR0")), // Integer registers
   // CV_IA64_IntR1 through CV_IA64_IntR127 defined
   pair<DWORD,_tstring>(2048,_T("CV_IA64_FltF0")), // Low floating point registers
   // CV_IA64_FltF1 through CV_IA64_FltF127 defined

   //** ADDITIONAL Intel IA64 REGISTERS DEFINED IN cvconst.h **//

   //** Register set for the TriCore processor **//
//   CV_TRI_NOREG = CV_REG_NONE,
   pair<DWORD,_tstring>(10,_T("CV_TRI_D0")), // General purpose data registers
   // CV_TRI_D1 through CV_TRI_D15 defined
   pair<DWORD,_tstring>(26,_T("CV_TRI_A0")), // General purpose address registers
   // CV_TRI_A1 through CV_TRI_A15 defined
   pair<DWORD,_tstring>(42,_T("CV_TRI_E0")), // Extended (64-bit) data registers
   pair<DWORD,_tstring>(43,_T("CV_TRI_E2")),
   pair<DWORD,_tstring>(44,_T("CV_TRI_E4")),
   pair<DWORD,_tstring>(45,_T("CV_TRI_E6")),
   pair<DWORD,_tstring>(46,_T("CV_TRI_E8")),
   pair<DWORD,_tstring>(47,_T("CV_TRI_E10")),
   pair<DWORD,_tstring>(48,_T("CV_TRI_E12")),
   pair<DWORD,_tstring>(49,_T("CV_TRI_E14")),
   pair<DWORD,_tstring>(50,_T("CV_TRI_EA0")), // Extended (64-bit) address registers
   pair<DWORD,_tstring>(51,_T("CV_TRI_EA2")),
   pair<DWORD,_tstring>(52,_T("CV_TRI_EA4")),
   pair<DWORD,_tstring>(53,_T("CV_TRI_EA6")),
   pair<DWORD,_tstring>(54,_T("CV_TRI_EA8")),
   pair<DWORD,_tstring>(55,_T("CV_TRI_EA10")),
   pair<DWORD,_tstring>(56,_T("CV_TRI_EA12")),
   pair<DWORD,_tstring>(57,_T("CV_TRI_EA14")),

   //** ADDITIONAL TriCore REGISTERS DEFINED IN cvconst.h **//

   //** Register set for the AM33 and related processors **//
//   CV_AM33_NOREG = CV_REG_NONE,
   // "Extended" (general purpose integer) registers
   pair<DWORD,_tstring>(10,_T("CV_AM33_E0")),
   // CV_AM33_E1 through CV_AM33_E7 defined
   pair<DWORD,_tstring>(20,_T("CV_AM33_A0")), // Address registers
   // CV_AM33_A1 through CV_AM33_A3 defined
   pair<DWORD,_tstring>(30,_T("CV_AM33_D0")), // Integer data registers
   // CV_AM33_D1 CV_AM33_D3 defined
   pair<DWORD,_tstring>(40,_T("CV_AM33_FS0")), // (Single-precision) floating-point registers
   // CV_AM33_FS1 through CV_AM33_FS31 defined

   //** ADDITIONAL AM33 REGISTERS DEFINED IN cvconst.h **//

   //** Register set for the Mitsubishi M32R **//
//   CV_M32R_NOREG = CV_REG_NONE,
   pair<DWORD,_tstring>(10,_T("CV_M32R_R0")),
   // CV_M32R_R1 through CV_M32R_R11 defined
   pair<DWORD,_tstring>(22,_T("CV_M32R_R12")), // Global pointer, if used
   pair<DWORD,_tstring>(23,_T("CV_M32R_R13")), // Frame pointer, if allocated
   pair<DWORD,_tstring>(24,_T("CV_M32R_R14")), // Link register
   pair<DWORD,_tstring>(25,_T("CV_M32R_R15")), // Stack pointer
   pair<DWORD,_tstring>(26,_T("CV_M32R_PSW")), // Preprocessor status register
   pair<DWORD,_tstring>(27,_T("CV_M32R_CBR")), // Condition bit register
   pair<DWORD,_tstring>(28,_T("CV_M32R_SPI")), // Interrupt stack pointer
   pair<DWORD,_tstring>(29,_T("CV_M32R_SPU")), // User stack pointer
   pair<DWORD,_tstring>(30,_T("CV_M32R_SPO")), // OS stack pointer
   pair<DWORD,_tstring>(31,_T("CV_M32R_BPC")), // Backup program counter
   pair<DWORD,_tstring>(32,_T("CV_M32R_ACHI")), // Accumulator high
   pair<DWORD,_tstring>(33,_T("CV_M32R_ACLO")), // Accumulator low
   pair<DWORD,_tstring>(34,_T("CV_M32R_PC")), // Program counter
   pair<DWORD,_tstring>(0,PAIR_END)
};

pair<DWORD,_tstring> CInit_CIDIASymb2Str::pairDataKind[]=
{
   pair<DWORD,_tstring>(0,_T("DataIsUnknown")),
   pair<DWORD,_tstring>(1,_T("DataIsLocal")),
   pair<DWORD,_tstring>(2,_T("DataIsStaticLocal")),
   pair<DWORD,_tstring>(3,_T("DataIsParam")),
   pair<DWORD,_tstring>(4,_T("DataIsObjectPtr")),
   pair<DWORD,_tstring>(5,_T("DataIsFileStatic")),
   pair<DWORD,_tstring>(6,_T("DataIsGlobal")),
   pair<DWORD,_tstring>(7,_T("DataIsMember")),
   pair<DWORD,_tstring>(8,_T("DataIsStaticMember")),
   pair<DWORD,_tstring>(9,_T("DataIsConstant")),
   pair<DWORD,_tstring>(0,PAIR_END)
};


pair<DWORD,_tstring> CInit_CIDIASymb2Str::pairLocationType[]=
{
   pair<DWORD,_tstring>(0,_T("LocIsNull")),
   pair<DWORD,_tstring>(1,_T("LocIsStatic")),
   pair<DWORD,_tstring>(2,_T("LocIsTLS")),
   pair<DWORD,_tstring>(3,_T("LocIsRegRel")),
   pair<DWORD,_tstring>(4,_T("LocIsThisRel")),
   pair<DWORD,_tstring>(5,_T("LocIsEnregistered")),
   pair<DWORD,_tstring>(6,_T("LocIsBitField")),
   pair<DWORD,_tstring>(7,_T("LocIsSlot")),
   pair<DWORD,_tstring>(8,_T("LocIsIlRel")),
   pair<DWORD,_tstring>(9,_T("LocInMetaData")),
   pair<DWORD,_tstring>(10,_T("LocIsConstant")),
   pair<DWORD,_tstring>(0,PAIR_END)
};


pair<DWORD,_tstring> CInit_CIDIASymb2Str::pairNameSearchOptions[]=
{
   pair<DWORD,_tstring>(0,_T("nsNone")),
   pair<DWORD,_tstring>(1,_T("nsCaseSensitive")),
   pair<DWORD,_tstring>(2,_T("nsCaseInsensitive")),
   pair<DWORD,_tstring>(3,_T("nsFNameExt")),
   pair<DWORD,_tstring>(4,_T("nsRegularExpression")),
   pair<DWORD,_tstring>(5,_T("nsCaseInRegularExpression")),
   pair<DWORD,_tstring>(0,PAIR_END)
};

pair<DWORD,_tstring> CInit_CIDIASymb2Str::pairSymTagEnum[]=
{
   pair<DWORD,_tstring>(0,_T("SymTagNull")),
   pair<DWORD,_tstring>(1,_T("SymTagExe")),
   pair<DWORD,_tstring>(2,_T("SymTagCompiland")),
   pair<DWORD,_tstring>(3,_T("SymTagCompilandDetails")),
   pair<DWORD,_tstring>(4,_T("SymTagCompilandEnv")),
   pair<DWORD,_tstring>(5,_T("SymTagFunction")),
   pair<DWORD,_tstring>(6,_T("SymTagBlock")),
   pair<DWORD,_tstring>(7,_T("SymTagData")),
   pair<DWORD,_tstring>(8,_T("SymTagAnnotation")),
   pair<DWORD,_tstring>(9,_T("SymTagLabel")),
   pair<DWORD,_tstring>(10,_T("SymTagPublicSymbol")),
   pair<DWORD,_tstring>(11,_T("SymTagUDT")),
   pair<DWORD,_tstring>(12,_T("SymTagEnum")),
   pair<DWORD,_tstring>(13,_T("SymTagFunctionType")),
   pair<DWORD,_tstring>(14,_T("SymTagPointerType")),
   pair<DWORD,_tstring>(15,_T("SymTagArrayType")),
   pair<DWORD,_tstring>(16,_T("SymTagBaseType")),
   pair<DWORD,_tstring>(17,_T("SymTagTypedef")),
   pair<DWORD,_tstring>(18,_T("SymTagBaseClass")),
   pair<DWORD,_tstring>(19,_T("SymTagFriend")),
   pair<DWORD,_tstring>(20,_T("SymTagFunctionArgType")),
   pair<DWORD,_tstring>(21,_T("SymTagFuncDebugStart")),
   pair<DWORD,_tstring>(22,_T("SymTagFuncDebugEnd")),
   pair<DWORD,_tstring>(23,_T("SymTagUsingNamespace")),
   pair<DWORD,_tstring>(24,_T("SymTagVTableShape")),
   pair<DWORD,_tstring>(25,_T("SymTagVTable")),
   pair<DWORD,_tstring>(26,_T("SymTagCustom")),
   pair<DWORD,_tstring>(27,_T("SymTagThunk")),
   pair<DWORD,_tstring>(28,_T("SymTagCustomType")),
   pair<DWORD,_tstring>(29,_T("SymTagManagedType")),
   pair<DWORD,_tstring>(30,_T("SymTagDimension")),
   pair<DWORD,_tstring>(0,PAIR_END)
};

pair<DWORD,_tstring> CInit_CIDIASymb2Str::pairTHUNK_ORDINAL[]=
{
   pair<DWORD,_tstring>(0,_T("THUNK_ORDINAL_NOTYPE")),
   pair<DWORD,_tstring>(1,_T("THUNK_ORDINAL_ADJUSTOR")),
   pair<DWORD,_tstring>(2,_T("THUNK_ORDINAL_VCALL")),
   pair<DWORD,_tstring>(3,_T("THUNK_ORDINAL_PCODE")),
   pair<DWORD,_tstring>(4,_T("THUNK_ORDINAL_LOAD")),
   pair<DWORD,_tstring>(0,PAIR_END)
};

pair<DWORD,_tstring> CInit_CIDIASymb2Str::pairUdtKind[]=
{
   pair<DWORD,_tstring>(0,_T("UdtStruct")),
   pair<DWORD,_tstring>(1,_T("UdtClass")),
   pair<DWORD,_tstring>(2,_T("UdtUnion")),
   pair<DWORD,_tstring>(0,PAIR_END)
};

_tstring CIDIASymb2Str::m_vcSProperty[]=
{
	_T("name"),		//must the first
	_T("symIndexId"),
	_T("symTag"),
	//move to top		_T("name"),
	//	_T("lexicalParent"),
	//	_T("classParent"),
	//	_T("type"),
	_T("dataKind"),
	_T("locationType"),
	_T("addressSection"),
	_T("addressOffset"),
	_T("relativeVirtualAddress"),
	_T("virtualAddress"),
	_T("registerId"),
	_T("offset"),
	_T("length"),
	_T("slot"),
	_T("volatileType"),
	_T("constType"),
	_T("unalignedType"),
	_T("access"),
	_T("libraryName"),
	_T("platform"),
	_T("language"),
	_T("editAndContinueEnabled"),
	_T("frontEndMajor"),
	_T("frontEndMinor"),
	_T("frontEndBuild"),
	_T("backEndMajor"),
	_T("backEndMinor"),
	_T("backEndBuild"),
	_T("sourceFileName"),
	//1 !there is no objectFilename as msdn said
	//	_T("objectFilename"),
	_T("thunkOrdinal"),
	_T("thisAdjust"),
	_T("virtualBaseOffset"),
	_T("get_virtual"),
	_T("intro"),
	_T("pure"),
	_T("callingConvention"),
	_T("value"),
	_T("baseType"),
	_T("token"),
	_T("timeStamp"),
	//	_T("guid"),
	_T("symbolsFileName"),
	_T("reference"),
	_T("count"),
	_T("bitPosition"),
	//	_T("arrayIndexType"),
	_T("packed"),
	_T("constructor"),
	_T("overloadedOperator"),
	_T("nested"),
	_T("hasNestedTypes"),
	_T("hasAssignmentOperator"),
	_T("hasCastOperator"),
	_T("scoped"),
	_T("virtualBaseClass"),
	_T("indirectVirtualBaseClass"),
	_T("virtualBasePointerOffset"),
	//	_T("virtualTableShape"),
	_T("lexicalParentId"),
	_T("classParentId"),
	_T("typeId"),
	_T("arrayIndexTypeId"),
	_T("virtualTableShapeId"),
	_T("code"),
	_T("function"),
	_T("managed"),
	_T("msil"),
	_T("virtualBaseDispIndex"),
	_T("undecoratedName"),
	_T("age"),
	_T("signature"),
	_T("compilerGenerated"),
	_T("addressTaken"),
	_T("rank"),
	//	_T("lowerBound"),
	//	_T("upperBound"),
	_T("lowerBoundId"),
	_T("upperBoundId"),
	//	_T("dataBytes"),
	_T("targetSection"),
	_T("targetOffset"),
	_T("targetRelativeVirtualAddress"),
	_T("targetVirtualAddress"),
	_T("machineType"),
	_T("oemId"),
	_T("oemSymbolId"),
	//	_T("types"),
	//	_T("typeIds"),
	//	_T("objectPointerType"),
	_T("udtKind"),
};

// must note map with m_vcSProperty
//_tstring (CIDIASymb2Str::*m_pmfS)()[]=
CIDIASymb2Str::DIASymb_mf CIDIASymb2Str::m_pmfS[]=
{
	&CIDIASymb2Str::name,	//must the first
	&CIDIASymb2Str::symIndexId,
	&CIDIASymb2Str::symTag,
	//move to top		    CIDIASymb2Str::name,
	//	    CIDIASymb2Str::lexicalParent,
	//	    CIDIASymb2Str::classParent,
	//	    CIDIASymb2Str::type,
	&CIDIASymb2Str::dataKind,
	&CIDIASymb2Str::locationType,
	&CIDIASymb2Str::addressSection,
	&CIDIASymb2Str::addressOffset,
	&CIDIASymb2Str::relativeVirtualAddress,
	&CIDIASymb2Str::virtualAddress,
	&CIDIASymb2Str::registerId,
	&CIDIASymb2Str::offset,
	&CIDIASymb2Str::length,
	&CIDIASymb2Str::slot,
	&CIDIASymb2Str::volatileType,
	&CIDIASymb2Str::constType,
	&CIDIASymb2Str::unalignedType,
	&CIDIASymb2Str::access,
	&CIDIASymb2Str::libraryName,
	&CIDIASymb2Str::platform,
	&CIDIASymb2Str::language,
	&CIDIASymb2Str::editAndContinueEnabled,
	&CIDIASymb2Str::frontEndMajor,
	&CIDIASymb2Str::frontEndMinor,
	&CIDIASymb2Str::frontEndBuild,
	&CIDIASymb2Str::backEndMajor,
	&CIDIASymb2Str::backEndMinor,
	&CIDIASymb2Str::backEndBuild,
	&CIDIASymb2Str::sourceFileName,
	//1 !there is no objectFilename as msdn said
	//	    CIDIASymb2Str::objectFilename,
	&CIDIASymb2Str::thunkOrdinal,
	&CIDIASymb2Str::thisAdjust,
	&CIDIASymb2Str::virtualBaseOffset,
	&CIDIASymb2Str::get_virtual,
	&CIDIASymb2Str::intro,
	&CIDIASymb2Str::pure,
	&CIDIASymb2Str::callingConvention,
	&CIDIASymb2Str::value,
	&CIDIASymb2Str::baseType,
	&CIDIASymb2Str::token,
	&CIDIASymb2Str::timeStamp,
	//	    CIDIASymb2Str::guid,
	&CIDIASymb2Str::symbolsFileName,
	&CIDIASymb2Str::reference,
	&CIDIASymb2Str::count,
	&CIDIASymb2Str::bitPosition,
	//	    CIDIASymb2Str::arrayIndexType,
	&CIDIASymb2Str::packed,
	&CIDIASymb2Str::constructor,
	&CIDIASymb2Str::overloadedOperator,
	&CIDIASymb2Str::nested,
	&CIDIASymb2Str::hasNestedTypes,
	&CIDIASymb2Str::hasAssignmentOperator,
	&CIDIASymb2Str::hasCastOperator,
	&CIDIASymb2Str::scoped,
	&CIDIASymb2Str::virtualBaseClass,
	&CIDIASymb2Str::indirectVirtualBaseClass,
	&CIDIASymb2Str::virtualBasePointerOffset,
	//	    CIDIASymb2Str::virtualTableShape,
	&CIDIASymb2Str::lexicalParentId,
	&CIDIASymb2Str::classParentId,
	&CIDIASymb2Str::typeId,
	&CIDIASymb2Str::arrayIndexTypeId,
	&CIDIASymb2Str::virtualTableShapeId,
	&CIDIASymb2Str::code,
	&CIDIASymb2Str::function,
	&CIDIASymb2Str::managed,
	&CIDIASymb2Str::msil,
	&CIDIASymb2Str::virtualBaseDispIndex,
	&CIDIASymb2Str::undecoratedName,
	&CIDIASymb2Str::age,
	&CIDIASymb2Str::signature,
	&CIDIASymb2Str::compilerGenerated,
	&CIDIASymb2Str::addressTaken,
	&CIDIASymb2Str::rank,
	//	    CIDIASymb2Str::lowerBound,
	//	    CIDIASymb2Str::upperBound,
	&CIDIASymb2Str::lowerBoundId,
	&CIDIASymb2Str::upperBoundId,
	//	    CIDIASymb2Str::dataBytes,
	&CIDIASymb2Str::targetSection,
	&CIDIASymb2Str::targetOffset,
	&CIDIASymb2Str::targetRelativeVirtualAddress,
	&CIDIASymb2Str::targetVirtualAddress,
	&CIDIASymb2Str::machineType,
	&CIDIASymb2Str::oemId,
	&CIDIASymb2Str::oemSymbolId,
	//	    CIDIASymb2Str::types,
	//	    CIDIASymb2Str::typeIds,
	//	    CIDIASymb2Str::objectPointerType,
	&CIDIASymb2Str::udtKind,
};

